package cz.schovjan.proj.service;

import java.util.List;

import cz.schovjan.proj.model.User;

/**
 * Rozhrani pro praci s uzivatelem.
 * @author schovjan
 * 
 */
public interface IUser {

	/**
	 * Vraci seznam vsech uzivatelu v systemu.
	 * @return
	 */
	public List<User> findAll();
	
	/**
	 * Zkontroluje nick a heslo a vraci uzivatele nebo null.
	 * @param nick
	 * @param password
	 * @return uzivatele, pokud heslo souhlasi, jinak null
	 */
	public User find(String nick, String password);

	/**
	 * Prida uzivatele do db a vrati ho.
	 * @param nick
	 * @param password
	 * @param lastName
	 * @param name
	 * @param user
	 * @param sign
	 * @return pridaneho uzivatele
	 */
	public User add(String nick, String password, String lastName, String name, String sign, String email);

	/**
	 * Zjistuje zda nick je jiz pouzity.
	 * @param nick
	 * @return
	 */
	public boolean isExist(String nick);

	/**
	 * Vrati uzivatele podle nicku.
	 * @param nick
	 * @return
	 */
	public User find(String nick);

	/**
	 * Ulozi zmeny pri editaci usera.
	 * @param nick
	 * @param password
	 * @param name
	 * @param surname
	 * @param sign
	 * @return
	 */
	public User save(String nick, String password, String name, String surname,	String sign, String email);

	/**
	 * Vymaze uzivatele podle jeho nicku (PK).
	 * @param nick
	 */
	public void delete(String nick);

}